#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
#  mail_notification.py
#
#  Copyright 2023 Elin K.V. <sale@ipelinkv.ru>
#
'''Содержит класс отправки сообщений на электронную почту.'''

from sys import argv                   # Для запуска как программы
import smtplib                         # Подключение к почте
from email.message import EmailMessage # Контруктора письма


class Connect_mail_server: # Контейнер с данными подключения

    def __init__(self, port = None, smpt = None, user = None, password = None):
        self.port = port
        self.smpt = smpt
        self.user = user
        self.password = password



class Mail_notification:
    '''Принимает данные для сообщения и отправляет на электронную почту по умолчанию.'''
    def __init__(self, subject, content, to_mail, mail_c):
        self.subject = subject
        self.content = content
        self.mail_c = mail_c if mail_c else Connect_mail_server() 
        self.to_mail = to_mail
        self.msg = EmailMessage()
        self.msg['Subject'] = self.subject
        self.msg['From'] = self.mail_c.user
        self.msg['To'] = self.to_mail if self.to_mail != '' else self.mail_c.user
        self.msg.set_content(self.content)
        self.connect = smtplib.SMTP(self.mail_c.smpt)
        self.connect.starttls()
        self.connect.login(self.mail_c.user, self.mail_c.password, initial_response_ok=True)
        self.connect.send_message(self.msg)

    def __del__(self):
        try:
            self.connect.quit()
        except:
            pass #raise 'Problem with connect'

def mail_notification(subject, content = '', to_mail = 'sale@ipelinkv.ru'):

    try:
        Mail_notification(subject, content, to_mail)
    except:
        pass
        #logger.exception(f'Ошибка отправки электронной почты: ')



if __name__ == '__main__':
    import sys

    if len(argv) >= 3:
        Mail_notification(argv[1], argv[2]) # Тема, Текст сообщения
